Skip to content

Add full navigation section type support to ParseNavigationConfig#48

Merged
robertmclaws merged 2 commits intomainfrom
dev
Feb 28, 2026
Merged

Add full navigation section type support to ParseNavigationConfig#48
robertmclaws merged 2 commits intomainfrom
dev

Conversation

@robertmclaws
Copy link
Contributor

@robertmclaws robertmclaws commented Feb 27, 2026

Summary

  • Add Tabs, Anchors, Dropdowns, and Products parsing to ParseNavigationConfig — previously only Pages-based navigation was supported; the other four Mintlify section types were silently ignored
  • Rework ParseNavigationConfig to defer Pages initialization so it remains null when not specified (allowing ApplyNavigationType to work correctly when Tabs/Anchors/etc. are used instead)
  • Add ParseTabConfig, ParseAnchorConfig, ParseDropdownConfig, ParseProductConfig internal methods with full attribute and nested-element parsing (including Tabs-within-Anchors, Tabs+Anchors-within-Dropdowns)
  • Add ParseNavigationSectionPages private helper to share <Groups>/<Group> and <Page> parsing logic across all section types
  • Add 20 new tests covering all new parse methods, HTML entity decoding (S&amp;SS&S), nested structures, multi-type coexistence, and backward-compatible Pages behavior
  • Bump DotNetDocs.Sdk reference from 1.2.0 to 1.3.0 in both .docsproj files
  • Fix EasyAF.MSBuild version constraint from 4.*-* to 4.* to resolve pre-existing NU1107 dependency conflict
  • Reorganize specs — move semantic-kernel-integration.md and try-dotnet.md into specs/future/

Test plan

  • All existing ParseGroupConfig and navigation tests continue to pass
  • ParseTabConfig_WithNameAndHref_ParsesCorrectly — Tab, Href, Pages parsed from attributes
  • ParseTabConfig_WithHtmlEncodedName_DecodesCorrectlyS&amp;S decoded to S&S
  • ParseTabConfig_WithoutName_ReturnsNull — missing Name returns null
  • ParseTabConfig_WithNestedGroups_ParsesHierarchy — nested GroupConfig within Tab
  • ParseAnchorConfig_WithNestedTabs_ParsesTabs — Tabs nested within Anchor
  • ParseDropdownConfig_WithNestedTabsAndAnchors_ParsesBoth — Tabs + Anchors within Dropdown
  • ParseProductConfig_WithDescription_ParsesDescription — Description attribute parsed
  • ParseNavigationConfig_WithTabsElement_PopulatesTabsNotPages — Pages remains null when Tabs used
  • ParseNavigationConfig_WithTabsElement_PreservesTabOrder — 5-tab order preserved including &amp; entities
  • ParseNavigationConfig_WithTabsAndAnchors_PopulatesBoth — multiple section types coexist
  • ParseNavigationConfig_WithPagesElement_StillWorks — backward compatibility maintained

🤖 Generated with Claude Code

robertmclaws and others added 2 commits February 27, 2026 18:41
ParseNavigationConfig previously only handled Pages-based navigation,
always initializing an empty Pages list even when unused. This adds
support for all four remaining Mintlify navigation section types:
Tabs, Anchors, Dropdowns, and Products.

Changes:
- Rework ParseNavigationConfig to detect and populate Tabs, Anchors,
  Dropdowns, and Products from their XML wrapper elements; Pages
  initialization is now deferred and only set when explicitly present
- Add ParseTabConfig, ParseAnchorConfig, ParseDropdownConfig, and
  ParseProductConfig internal methods with full XML attribute and
  nested-element parsing
- Add ParseNavigationSectionPages private helper to share
  Groups/Page parsing logic across all section types
- Add 20 new tests covering all parse methods, HTML entity decoding,
  nested structures, multi-type coexistence, and backward compatibility

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…e specs to future

- Bump DotNetDocs.Sdk reference from 1.2.0 to 1.3.0 in both .docsproj files
- Change EasyAF.MSBuild version constraint from 4.*-* to 4.* to resolve NU1107 conflict
- Delete specs/semantic-kernel-integration.md and specs/try-dotnet.md (moved to specs/future/)
- Add specs/future/ with moved specs and contributors.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@robertmclaws robertmclaws merged commit ed356a3 into main Feb 28, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant